package com.ciaojian.bytedance.authcontroller;

import com.alibaba.fastjson.JSONObject;
import com.ciaojian.bytedance.service.ByteDanceMiniAppAuthService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@ApiModel("平台抖音授权登录")
@Slf4j
@RestController
@RequestMapping("/platform/oauth")
public class ByteDancePlatformOauthController {

    @Autowired
    private ByteDanceMiniAppAuthService byteDanceMiniAppAuthService;


    /**
     * 生成 client_token
     * 用于获取接口调用的凭证 client_token。该接口适用于抖音授权。
     */
    @ApiModelProperty("生成 client_token无需用户授权  可直接用ByteDanceTokenProvider.getBytedanceClienttoken()替换")
    @GetMapping("/clientToken")
    public JSONObject getClientToken() {
        return byteDanceMiniAppAuthService.getClientToken();
    }


    /**
     * 获取 access_token
     * 授权整体流程详见授权概述；
     * 该接口用于获取用户授权第三方接口调用的凭证 access_token；
     * 该接口适用于抖音授权。
     */
    @ApiModelProperty("获取 access_token 需要用户授权")
    @GetMapping("/getAccessToken")
    public JSONObject getAccessToken(String code) {
        return byteDanceMiniAppAuthService.getAccessToken(code);
    }
}
